package com.java.second_goods.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.java.second_goods.entity.Goods;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 商品Mapper接口
 */
@Mapper
public interface GoodsMapper extends BaseMapper<Goods> {

    /**
     * 查询热门商品列表
     *
     * @param limit 限制条数
     * @return 商品列表
     */
    List<Goods> selectPopularGoods(@Param("limit") Integer limit);

    /**
     * 查询新品列表
     *
     * @param limit 限制条数
     * @return 商品列表
     */
    List<Goods> selectNewGoods(@Param("limit") Integer limit);

    /**
     * 查询用户发布的商品列表
     *
     * @param sellerId 卖家ID
     * @return 商品列表
     */
    List<Goods> selectGoodsBySellerId(@Param("goodsId") Integer sellerId);

    /**
     * 增加商品浏览次数
     *
     * @param id 商品ID
     * @return 结果
     */
    int increaseViewCount(@Param("id") Integer id);

    /**
     * 增加商品收藏次数
     *
     * @param id 商品ID
     * @return 结果
     */
    int increaseFavoriteCount(@Param("id") Integer id);

    /**
     * 减少商品收藏次数
     *
     * @param id 商品ID
     * @return 结果
     */
    int decreaseFavoriteCount(@Param("id") Integer id);

    /**
     * 更新商品状态
     *
     * @param id 商品ID
     * @param status 状态：1-正常，0-下架
     * @return 结果
     */
    int updateGoodsStatus(@Param("id") Integer id, @Param("status") Integer status);

    /**
     * 按分类统计商品数量
     *
     * @return 统计结果
     */
    // GoodsMapper.java
    List<Map<String, Object>> countGoodsByCategory();
}